<?php
// src/Pyaf/GymBundle/Controller/AdminPaqueteRutinaController.php
namespace Pyaf\GymBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Pyaf\GymBundle\Entity\PaqueteRutina;
use Pyaf\GymBundle\Form\PaqueteRutinaType;
/**
 * Description of AdminPaqueteRutinaController
 *
 * @author Toshiba P755-S5272
 */
class AdminPaqueteRutinaController extends Controller{
    
    public function listAction(){
        $paquetesRutinas = $this->getDoctrine()->getEntityManager()
                        ->getRepository('PyafGymBundle:PaqueteRutina')
                        ->findAllOrderByNombre();
        return $this->render('PyafGymBundle:AdminPaqueteRutina:list.html.twig', 
                                array('paquetesRutinas' => $paquetesRutinas));
    }
    
    public function newAction() {
        
        $peticion = $this->getRequest();
                
        $paqueteRutina = new PaqueteRutina();     
        $formulario = $this->createForm(new PaqueteRutinaType(), $paqueteRutina);
        
        if ($peticion->getMethod() == 'POST') {
            $formulario->bindRequest($peticion);
            if ($formulario->isValid()) {
                $em = $this->getDoctrine()->getEntityManager();
                $paqueteRutina = $formulario->getData();            
                $em->persist($paqueteRutina);
                $em->flush();
                
                $this->get('session')
                         ->setFlash(
                                        'alertaPaqueteRutinaSuccess',
                                        'El nuevo paquete-rutinas ('.$paqueteRutina->getNombre().') ha sido agregado correctamente!'
                                    );
                
                return $this->redirect($this->generateUrl('admin_paqueterutina_list'));
            } 
        }
        
        return $this->render('PyafGymBundle:AdminPaqueteRutina:new.html.twig', array(
            'formulario' => $formulario->createView(),
        ));
    }
    
    public function editAction($id)
    {
        $peticion = $this->get('request');
        $em = $this->getDoctrine()->getEntityManager();

        if (null == $paqueteRutina = $em->find('PyafGymBundle:PaqueteRutina', $id)) {
            throw new NotFoundHttpException('No existe el paquete de rutinas que se quiere modificar');
        }

        $formulario = $this->createForm(new PaqueteRutinaType(), $paqueteRutina);
        $formulario->setData($paqueteRutina);

        if ($peticion->getMethod() == 'POST') {
            $formulario->bindRequest($peticion);

            if ($formulario->isValid()) {
                $em->persist($paqueteRutina);
                $em->flush();
                
                $this->get('session')
                         ->setFlash(
                                        'alertaPaqueteRutinaSuccess',
                                        'El paquete-rutinas ('.$paqueteRutina->getNombre().') ha sido modificado correctamente!'
                                    );
                
                return $this->redirect($this->generateUrl('admin_paqueterutina_list'));
            }
        }

        return $this->render('PyafGymBundle:AdminPaqueteRutina:edit.html.twig', array(
            'formulario' => $formulario->createView(),
            'paqueteRutina'   => $paqueteRutina
        ));
    }
    
    public function disableAction($id)
    {
        $em = $this->getDoctrine()->getEntityManager();
        $paqueteRutina = $em->find('PyafGymBundle:PaqueteRutina', $id);
        if (null == $paqueteRutina) {
            throw new NotFoundHttpException('No existe el paquete de rutinas que se quiere modificar');
        } else {  
            $paqueteRutina->setHabilitado(!$paqueteRutina->getHabilitado());
            $em->getRepository('PyafGymBundle:PaqueteRutina')->save($paqueteRutina);
            
            if($paqueteRutina->getHabilitado()){
                $this->get('session')
                         ->setFlash(
                                        'alertaPaqueteRutinaSuccess',
                                        'El paquete-rutina ('.$paqueteRutina->getNombre().') ha sido habilitado correctamente!'
                                    );
            } else{
                $this->get('session')
                         ->setFlash(
                                        'alertaPaqueteRutinaError',
                                        'El paquete-rutina ('.$paqueteRutina->getNombre().') ha sido inhabilitado correctamente!'
                                    );
            }            
        }       

        return $this->redirect($this->generateUrl('admin_paqueterutina_list'));
    }
    
    public function showAction($id){        
        $paqueteRutina = new PaqueteRutina(); 
        $paqueteRutina = $this->getDoctrine()->getEntityManager()
                         ->getRepository('PyafGymBundle:PaqueteRutina')
                         ->findPaqueteRutina($id);
              
        return $this->render('PyafGymBundle:AdminPaqueteRutina:info.html.twig', array('paqueteRutina' => $paqueteRutina));
    }
}

?>
